// 1、引入 axios
import axios from 'axios'
import dmzutils from '../DmzUtil'
import {MessageBox} from 'element-ui';
import router from '../../router';
import storage from "../DmzUtil";
// 2、创建一个 axios 的实例对象
// let baseURL_dev = ""  //开发环境的url地址
// let baseURL_pro = ""  //上线后公司域名utl地址
// let baseURL_test = "" //内网地址，测试环境url地址

let msg = MessageBox;
const instance = axios.create({
// 基准路径
//4、 超时时间的设置 ms
    timeout: 5000,
    headers: {
        "Content-Type": "application/json;charset=UTF-8"
    } //5、携带过去的请求头
})

// 6、添加请求拦截器
instance.interceptors.request.use(
    config => {
// 在发送请求之前做些什么
//         做鉴权token
        config.headers.authorization = dmzutils.getSession("accessToken")
        return config //相当于next()放行，config是个对象，里面包含请求的所有信息。
    },
    error => {
// 对请求错误做些什么
        return Promise.reject(error)
    }
)

// 7、 添加响应拦截器
instance.interceptors.response.use(
    response => {
        let {data: res} = response;
        if (res.code != 0) {
            // 如果token过期了，重新定位到登录页面
            if (res.code === 4010002) {
                msg({
                    message: res.msg,
                    title:"提示",
                    type: "warning",
                }).then(() => {
                    storage.clearOneSession("accessToken");
                    router.push("/login");
                })
            }
            if(res.code===300100){
                msg({
                    message: res.msg,
                    title:"错误",
                    type: "error",
                });
            }
        }
// 对响应数据做点什么
        return response;
    },
    error => {
// 对响应错误做点什么
        return Promise.reject(error)
    }
)


// 暴露这个实例
export default instance
